package 中等.哈希表;

import java.util.HashSet;
import java.util.Set;

/**
 * 给你两个正整数：n 和 target 。
 * 如果数组 nums 满足下述条件，则称其为 美丽数组 。
 * nums.length == n.
 * nums 由两两互不相同的正整数组成。
 * 在范围 [0, n-1] 内，不存在 两个 不同 下标 i 和 j ，使得 nums[i] + nums[j] == target 。
 * 返回符合条件的美丽数组所可能具备的 最小 和。
 */
public class 找出美丽数组的最小和 {

    public static void main(String[] args) {

        System.out.println(minimumPossibleSum(2, 3));

    }

    public static long minimumPossibleSum(int n, int target) {
        long sum = 0;
        long curNum = 1;
        Set<Long> set = new HashSet<>();
        while (n-- > 0) {
            while (set.contains(target - curNum)) {
                curNum++;
            }
            sum += curNum;
            set.add(curNum);
            curNum++;
        }
        return sum;
    }


}
